package com.ctshk.rpc.ship.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 船票推荐DTO
 * </p>
 *
 * @author 刘蕾
 * @since 2021年03月05日
 */
@Data
@ApiModel(value = "ShipRecommendDTO对象", description = "船票产品DTO")
public class ShipReserveListDTO implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "产品ID")
    private Long id;

    @ApiModelProperty(value = "适用人群")
    private String applicableCrowdName;

    @ApiModelProperty(value = "乘客Id")
    private String touristName;

    @ApiModelProperty(value = "成本成员表ID")
    private Long touristId;

    @ApiModelProperty(value = "产品编号")
    private String code;

    @ApiModelProperty(value = "船种名称")
    private String shipTypeName;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private Long cabinClass;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassStr;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassName;

    @ApiModelProperty(value = "船舱等级名称")
    private String seatRanktName;

    @ApiModelProperty(value = "已售数")
    private Integer soldNumber;

    @ApiModelProperty(value = "航线名称")
    private String routeName;

    @ApiModelProperty(value = "航次码")
    private String voyage;

    @ApiModelProperty(value = "航线ID")
    private String routeId;

    @ApiModelProperty(value = "出发时间")
    private String depTime;

    @ApiModelProperty(value = "出发时间")
    private LocalDate startDate;

    @ApiModelProperty(value = "出发城市名称")
    private String depCityName;

    @ApiModelProperty(value = "到达城市名称")
    private String arrCityName;

    @ApiModelProperty(value = "出发港口")
    private String depPlaceName;

    @ApiModelProperty(value = "到达港口")
    private String arrPlaceName;

    @ApiModelProperty(value = "出发港口")
    private String depPlaceCode;

    @ApiModelProperty(value = "到达港口")
    private String arrPlaceCode;

    @ApiModelProperty(value = "退改列印內容")
    private String refundContent;

    @ApiModelProperty(value = "成本价Code")
    private String costCode;

    @ApiModelProperty(value = "总价格 成本+服务费+税费")
    private BigDecimal price;

    @ApiModelProperty(value = "成本价")
    private BigDecimal cosPrice;

    @ApiModelProperty(value = "服务费")
    private BigDecimal servicePrice;

    @ApiModelProperty(value = "税费")
    private BigDecimal taxPrice;

    @ApiModelProperty(value = "加辐费")
    private BigDecimal orderPrice;

    @ApiModelProperty(value = "线下加幅费用")
    private BigDecimal offLinePrice;

    @ApiModelProperty(value = "每日库存")
    private Integer dailyStock;

    @ApiModelProperty(value = "加幅类型")
    private Integer adjustType;

    @ApiModelProperty(value = "加幅金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "加幅百分比")
    private Double percent;

    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票")
    private Long companyType;

    @ApiModelProperty(value = "出发城市id")
    private Long depCityId;

    @ApiModelProperty(value = "到达城市id")
    private Long arrCityId;

    @ApiModelProperty(value = "出发地id")
    private Long depPlaceId;

    @ApiModelProperty(value = "到达地id")
    private Long arrPlaceId;

    @ApiModelProperty(value = "余票")
    private Integer surplusNumber;

    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "票类型 1 小童 2 成人 3 长者")
    private Long touristTypeId;

    @ApiModelProperty(value = "货币ID")
    private Long currencyId;

    @ApiModelProperty(value = "货币名称")
    private String currencyName;

    @ApiModelProperty(value = "汇率")
    private BigDecimal exchangeRate;

    @ApiModelProperty(value = "权限范围类型（1：自营禁售 2 所有部门 3指定部门/人员）")
    private Integer visableType;

    @ApiModelProperty(value = "关联ID")
    private Long relationId;

    @ApiModelProperty(value = "是否及时确认：二次确认和API产品该值不展示")
    private Integer isConfirm;

    @ApiModelProperty("今日库存")
    private Integer totalNumber;

    @ApiModelProperty("今日可售额")
    private Integer limitNum;

    @ApiModelProperty("是否限制可售数")
    private Integer isLimit;

    @ApiModelProperty(value = "产品集合")
    private List<ShipReserveDTO> ShipReserveList;


}
